The present invention relates to the field of distributing protocol stacks to multiple operating systems.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Many general purpose computers (GPC) that have an operating system (such as UNIX, NT, UTS and so on) have a STREAMS framework for implementing a protocol stack. The protocol stack communicates with input/output (I/O) drivers (especially communications drivers).
The expansion of client-server computing with demands for increased performance has presented problems. Although client work station power has increased, system performance has been constrained by server I/O limitations since dramatic jumps in microprocessor performance have not been matched by similar boosts in server I/O performance.
Many multiprocessor based systems have employed a Symmetric Multiple Processing architecture (SMP). In a SMP architecture, each of a plurality of central processing units, including processors CPU1, CPU2, . . . , CPUn, executes all tasks, including kernel I/O processing tasks. The goal of the operating system is to enable the n processors to deliver close to n-times the performance of one processor. Although it is relatively easy to achieve this n-times multiplier effect for pure computing jobs internal to the processor, it is relatively difficult to achieve this n-times multiplier effect for overall system performance including general I/O processing. I/O processing tends to cause frequent interrupts that invalidate the cache of the interrupted processor thereby slowing down the system. Because of this I/O processing problem with SMP architectures, better performance is predicted when some processors are dedicated to I/O processing (off-loading) in an asymmetrical multiprocessing (AMP) architecture.
However, asymmetrical multiprocessing architectures which have been proposed have been system specific without interfaces that permit a standard I/O framework and these proposed systems therefore have not provided transportability from system to system.
In view of the above background, there is a need for improved distributed computing systems and particularly protocol stacks for distributed computing.